﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Intelsi.BusinessLogic;
using Intelsi.Entity;
using Microsoft.Practices.Unity;
using System.Data.Odbc;

namespace Intelsi.WB.Gerencia
{
    public partial class frmProyecto : System.Web.UI.Page
    {
        [Dependency]
        public IProyectoBL proyectoBL { get; set; }

        [Dependency]
        public ITrabajadorBL trabajadorBL { get; set; }

        public Proyecto CurrenProyecto { get; set; }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {

                string userName = HttpContext.Current.User.Identity.Name;
                var trabajador = trabajadorBL.GetFromTrabajadorByCorreoCorporativo(userName);

                string cargo = trabajador.Cargo;

                var acc = Request.QueryString["acc"];
                var idproy = Request.QueryString["IdProyecto"];
                    Proyecto proyecto;
                    if (acc == "nuevo" && (cargo == "Administrador" || cargo == "Gerente"))
                {
                    AccionHiddenField.Value = acc;
                    IdHiddenField.Value = "0";
                    txtComentario.Visible = false;
                    Comentario.Visible = false;
                }
                    else if (acc == "editar" && (cargo == "Administrador" || cargo == "Gerente"))
                    {
                        AccionHiddenField.Value = acc;

                        proyecto = proyectoBL.GetAllFromProyectoById(Int32.Parse(idproy.ToString()));
                        CurrenProyecto = proyecto;
                        IdHiddenField.Value = proyecto.IdProyecto.ToString();
                        txtDescripcion.Text = proyecto.Descripcion;
                        txtEmpresa.Text = proyecto.Empresa;
                        txtFechaF.Text = proyecto.FechaFin.Value.ToShortDateString();
                        txtFechaI.Text = proyecto.FechaInicio.Value.ToShortDateString();
                        txtOrden.Text = proyecto.OrdenServicio;
                        txtPlazo.Text = proyecto.PlazoDeEjecucion.ToString();
                        txtPrecio.Text = proyecto.Costo.ToString();
                        DDLMoneda.SelectedValue = proyecto.Moneda;
                        DDLEstado.SelectedValue = proyecto.Estado;
                        txtComentario.Text = proyecto.Comentario.ToString();
                        txtEmpresa.Enabled = false;
                        txtOrden.Enabled = false;
                        txtComentario.Visible = true;
                        Comentario.Visible = true;
                        this.DataBind();
                    }
                    else {

                        Page.ClientScript.RegisterStartupScript(this.GetType(),
                                "mensaje",
                                   "<script type=\"text/javascript\">" +
                                      "alert(\"Usted No tiene Los Permiso Nesesarios Para esto\");" +
                                      "document.location=('DefaultProy.aspx');" +
                                        "</script>", false);
                    }
            }
        }

        private Proyecto BindData()
        {
            Proyecto proyecto = new Proyecto()
            {
                IdProyecto = Int32.Parse(IdHiddenField.Value),
                Descripcion = txtDescripcion.Text,
                Empresa = txtEmpresa.Text,
                FechaFin = DateTime.Parse(txtFechaF.Text),
                FechaInicio = DateTime.Parse(txtFechaI.Text),
                OrdenServicio = txtOrden.Text,
                PlazoDeEjecucion = Int32.Parse(txtPlazo.Text),
                Costo = Decimal.Parse(txtPrecio.Text),
                Moneda = DDLMoneda.SelectedValue,
                Estado = DDLEstado.SelectedValue,
                Comentario = txtComentario.Text
            };
            return proyecto;
        }

        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            Proyecto proyecto = BindData();
            if (AccionHiddenField.Value == "editar")
            {
                proyectoBL.ActualizarProyecto(proyecto);
                Response.Redirect("frmListProyectos.aspx");
            }
            else if (AccionHiddenField.Value == "nuevo")
            {
                proyectoBL.AddProyecto(proyecto);
                Response.Redirect("frmListProyectos.aspx?acc=editar&IdProyecto=" + proyecto.IdProyecto.ToString());
            }
        }

        protected void btnCancelar_Click(object sender, EventArgs e)
        {
            Response.Redirect("frmListProyectos.aspx");
        }
    }
}